package router

import (
	"IdentityAuthentication/cmd/common/api"
	"github.com/gin-gonic/gin"
	"net/http"
)

func routerHttp(r *gin.Engine) {
	// 加载登录页面
	r.LoadHTMLFiles("public/index.html")
	// 加载静态资源
	r.Static("/static", "static")
	// 设定基础登录页面
	r.GET("/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "index.html", gin.H{
			"titile": "身份认证系统",
		})
	})
}

// 设定认证api接口
func routerApi(r *gin.Engine) {
	api := r.Group("/api")
	{
		api.GET("/ping", func(c *gin.Context) {
			c.JSON(http.StatusOK, gin.H{
				"msg": "pong",
			})
		})
	}
}

// 设定OAuth接口
func routerOAuth2(r *gin.Engine) {
	// 注册接口
	r.GET("/credentials", api.Credentials)
	// 授权
	r.GET("/authorize", api.Authorize)
	// 认证key获取
	r.GET("/token", api.Token)
	// 验证拦截中间件
	r.Use(api.Verification)
}

// 初始主路由
func Router(r *gin.Engine) {
	// 设定静态资源与html
	routerHttp(r)
	// 设定oauth2认证服务器
	routerOAuth2(r)
	// 设定认证api接口
	routerApi(r)
}
